package com.tanhua.dubbo.api;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tanhua.model.enums.CommentType;
import com.tanhua.model.mongo.Comment;
import com.tanhua.model.mongo.Movement;
import com.tanhua.model.vo.MovementsVO;
import com.tanhua.model.vo.PageResult;
import org.bson.types.ObjectId;

import java.util.List;

/**
 * @author Xiao
 * @date 2021/10/25
 */
public interface MovementApi {
    /**
     * 圈子-动态-发布
     * @param movement
     */
    String publish(Movement movement);

    /**
     * 圈子-我的动态
     * @param userId
     * @return
     */
    PageResult selectByUserId(Integer page, Integer pagesize, Long userId);

    /**
     * 圈子-好友动态
     * @param page
     * @param pagesize
     * @param friendId
     * @return
     */
    PageResult findFriendMovements(Integer page, Integer pagesize, Long friendId);

    /**
     * 圈子-推荐好友-随机推荐
     * @param pagesize
     * @return
     */
    List<Movement> getRandomMovements(Integer pagesize);

    /**
     * 圈子-推荐好友-根据pid查询
     * @param pids
     * @return
     */
    List<Movement> findRecommendMovements(List<Long> pids);

    /**
     * 圈子-查询单条动态
     * @param movementId
     * @return
     */
    Movement findById(String movementId);

    /**
     * 消息-点赞(likes)/评论(comments)/喜欢(loves)列表
     * @param commentType --》 LIKE/COMMENT/LOVE
     * @param userId
     * @param commentType
     * @param page
     * @param pagesize
     * @return
     */
    List<Comment> getList(Long userId, CommentType commentType, Integer page, Integer pagesize);

    /**
     * 分页查询动态数据
     * @param page
     * @param pagesize
     * @param uid
     * @param state
     * @return
     */
    PageResult getMessages(Integer page, Integer pagesize, Long uid, String state);

    /**
     * 动态审核
     * @param movementIds   动态id集合
     * @param state 1-通过、2-驳回
     * @return
     */
    String updateState(List<ObjectId> movementIds, Integer state);
}
